home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1994 November: Tool Chest / Dev.CD Nov 94.toast / Sample Code / Snippets / Sound / ClickSoundƒ / ClickSound.p < prev    next >
Encoding:
Text File  |  1992-07-15  |  1.9 KB  |  70 lines  |  [TEXT/MPS ]

  1.  
  2. PROGRAM EngineSound;
  3.  
  4. {$Load Blankload}
  5. USES    Sound,Events,ToolUtils,Quickdraw,SegLoad,Memtypes,OSIntf,ToolIntf,PackIntf,Script;
  6.  
  7. PROCEDURE _DataInit;    EXTERNAL;
  8.  
  9. VAR
  10.         MyChannel : SndChannelPtr;
  11.         MyCmd : SndCommand;
  12.         MyEvent : EventRecord;
  13.         err, i : Integer;
  14.         quit : boolean;
  15.         theKey : char;
  16. {------------------------------------------------------------------------------------}
  17.  
  18. BEGIN                              {main PROGRAM}
  19.     
  20.     UnLoadSeg(@_DataInit);               {remove data initialization code before any allocations}
  21.     InitGraf(@thePort);                {initialize QuickDraw}
  22.     FlushEvents(everyEvent, 0);        {call OS Event Mgr to discard any previous events}
  23.     FlushEvents(everyEvent, 0);        {call OS Event Mgr to discard any previous events}
  24.     InitWindows;                       {initialize Window Manager}
  25.     InitMenus;                           {initialize Menu Manager}
  26.     TEInit;                            {initialize TextEdit}
  27.     InitDialogs(NIL);                   {initialize Dialog Manager}
  28.     InitCursor;                        {call QuickDraw to make cursor (pointer) an arrow}
  29.     quit := false;
  30.     
  31.     MyChannel := nil;
  32.     err := SndNewChannel (MyChannel, noteSynth, initChan0,nil);
  33.     if err = noerr then
  34.     begin
  35.         
  36.         MyCmd.cmd := timbreCmd;
  37.         MyCmd.param1 := 250;
  38.         MyCmd.param2 := 0;
  39.         err := SndDoCommand (MyChannel, MyCmd, false);
  40.  
  41.         MyCmd.cmd := ampCmd;
  42.         MyCmd.param1 := 255;
  43.         MyCmd.param2 := 0;
  44.         err := SndDoCommand (MyChannel, MyCmd, false);
  45.  
  46.         repeat
  47.             repeat until GetNextEvent (EveryEvent,MyEvent);
  48.             case MyEvent.what of
  49.             keyDown : Begin
  50.                             theKey := char(BitAnd (MyEvent.message,CharCodeMask));
  51.                             if theKey = 'q' then quit := true;
  52.                       End;
  53.             end; {case}
  54.             
  55.             MyCmd.cmd := noteCmd;
  56.             MyCmd.param1 := 30;
  57.             MyCmd.param2 := $FF000000 + 83;
  58.             err := SndDoCommand (MyChannel, MyCmd, false);
  59.  
  60.             MyCmd.cmd := quietCmd;
  61.             MyCmd.param1 := 0;
  62.             MyCmd.param2 := 0;
  63.             err := SndDoCommand (MyChannel, MyCmd, false);
  64.         until quit;
  65.         
  66.         err := SndDisposeChannel (MyChannel, false);
  67.         
  68.     end;
  69. END.
  70.